1. Field of the Invention
The present invention relates to computer systems and methods and, in particular, to computer-implemented processes and apparatuses for extensible communications between applications and users of computer systems.
2. Description of the Related Art
It is desirable to provide for communication between and among various applications, components, and users of computer systems. In computer-based conferencing systems, for example, there is a need to provide for communication between remote users of applications of the conferencing system.
Such computer systems often comprise personal computer (PC) based systems operating in windowed environments such as those provided by versions of Microsoft.RTM. Windows.TM. operating system. Applications and elements of computer systems are associated with addresses of various types, which are often updated or created over time.
Remote communication is often enabled by a variety of hardware mechanisms. For example, such communication hardware mechanisms may include a data modem that enables data communications via a telephone POTS (Plain Old Telephone System) line, and a communication network interface that enables transfer of electronic mail (e-mail) messages over a local area network (LAN). Such a computer system may also include a high speed communication line interface that enables real time video communication for a video conferencing system.
In addition, such computer systems typically implement a variety of communication application programs that employ such hardware communication mechanisms. For example, a fax or fax-modem application program is typically implemented that performs fax and data communication via the hardware data modem. Such a prior computer system may also include an electronic mail application program that enables the transfer of e-mail messages and files over the LAN through the hardware network interface. In addition, such a computer system may implement a video conferencing application program that performs video data and other data transfer through the high speed communication line interface.
Such communication application programs typically require a user to specify one or more destination identifiers for transfer of communication data or messages. A fax application program typically requires the user to specify a telephone/fax number for a fax transmission. Similarly, a typical e-mail application program requires a user to specify an e-mail address for outbound messages. In addition, a typical video conferencing application requires a user to specify a destination address on the high speed communication line for transmission of outbound video data. For example, such a video conferencing application program may require the user to specify an integrated services data network (ISDN) address for video conferencing over an ISDN communication link.
Prior communication application programs typically implement an address book service that enables the user to store recipient names and corresponding destination information in an address book database. Typically, such an address book service maps recipient names into destination identifiers such as telephone numbers and e-mail addresses. In addition, such an address book service of a communication application program usually enables the user to search an address book database for a recipient name or destination name and retrieve the corresponding destination identifiers. For example, an address book service in a typical fax application program enables the user to store and retrieve fax numbers and associated recipient or destination names. A typical e-mail application program enables the user to store and retrieve e-mail LAN addresses associated with recipient names.
In some prior computer systems, each communication application program installed maintains a separate private address book. For example, a fax application program usually maintains a fax number address book while an e-mail application program maintains a separate e-mail address book.
Unfortunately, such separate address books typically require the user to enter the same information in multiple address book databases. For example, a particular recipient may have both a fax destination and an e-mail destination. In such prior systems, the user must typically enter the recipient name and associated information in the private address book for the fax application program as well as the private address book for the e-mail application program. Such a duplication of information among multiple private address books usually increases the amount of computer system storage space required by databases for communication application programs.
Moreover, such systems that require multiple private address books are usually difficult to maintain because changes to recipient information typically requires that the user change the same information in multiple address book databases. In addition, such systems typically require a user to learn several address book user interfaces. As a consequence, such systems typically occupy increased system resources and require increased maintenance for similar information maintained by multiple communication application programs.
Thus, there is a need to provide shared address book services for type management in a computer system. In computer systems such as conferencing systems, there are a variety of different address types, for example PHONE-ISDN and PHONE-POTS, or other types as referenced above. Each specific address type is supported by a Dynamic Link Library (DLL), such as a Windows DLL. For example, when a user of an application desires to connect to a second user of another conferencing node via an ISDN connection, a specific ISDN address is supplied. A dedicated ISDN-Type DLL then supports the connection to the second user at the second user's address over an ISDN. A type DLL manager or type library manager may be utilized to select the correct type DLL to support the relevant communication connection. For example, a video conferencing application program may incorporate a type library manager and several alternative type libraries or DLLs to support a variety of connection address types.
However, the set of different address types evolves over time, with old address types being updated and new address types being developed, for example to support new communications mechanisms or addressing schemes. A problem in the prior art is that such new address types cannot be added to existing application programs and their type management systems. A new application program and updated type management system must be developed, recompiled, and resold or otherwise redistributed to users in order to take advantage of new address types that are available.
What is needed, therefore, is an extensible communication type manager for a computer system which supports the formatting, storing, and user editing of new address types.